print-editor: Make accels work
authorMatthias Clasen <mclasen@redhat.com>
Wed, 16 Jun 2021 14:16:41 +0000 (10:16 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Wed, 16 Jun 2021 14:17:49 +0000 (10:17 -0400)
Sadly, they don't show up anymore with this.

demos/print-editor/print-editor.c

index 27202dd2ee834ea573179627a1de24e60c4e8505..3737affd49a01214cb4e61424fd2470a573f8593 100644 (file)
@@ -721,7 +721,6 @@ static const char ui_info[] =
   "        <item>"
   "          <attribute name='label'>_New</attribute>"
   "          <attribute name='action'>app.new</attribute>"
-  "          <attribute name='accel'>&lt;Primary&gt;n</attribute>"
   "        </item>"
   "        <item>"
   "          <attribute name='label'>_Open</attribute>"
@@ -730,12 +729,10 @@ static const char ui_info[] =
   "        <item>"
   "          <attribute name='label'>_Save</attribute>"
   "          <attribute name='action'>app.save</attribute>"
-  "          <attribute name='accel'>&lt;Primary&gt;s</attribute>"
   "        </item>"
   "        <item>"
   "          <attribute name='label'>Save _As...</attribute>"
   "          <attribute name='action'>app.save-as</attribute>"
-  "          <attribute name='accel'>&lt;Primary&gt;s</attribute>"
   "        </item>"
   "      </section>"
   "      <section>"
@@ -756,7 +753,6 @@ static const char ui_info[] =
   "        <item>"
   "          <attribute name='label'>_Quit</attribute>"
   "          <attribute name='action'>app.quit</attribute>"
-  "          <attribute name='accel'>&lt;Primary&gt;q</attribute>"
   "        </item>"
   "      </section>"
   "    </submenu>"
@@ -766,7 +762,6 @@ static const char ui_info[] =
   "        <item>"
   "          <attribute name='label'>_About Print Editor</attribute>"
   "          <attribute name='action'>app.about</attribute>"
-  "          <attribute name='accel'>&lt;Primary&gt;a</attribute>"
   "        </item>"
   "      </section>"
   "    </submenu>"
@@ -794,6 +789,15 @@ startup (GApplication *app)
 {
   GtkBuilder *builder;
   GMenuModel *menubar;
+  struct {
+    const char *action_and_target;
+    const char *accelerators[2];
+  } accels[] = {
+    { "app.new", { "<Control>n", NULL } },
+    { "app.quit", { "<Control>q", NULL } },
+    { "app.save", { "<Control>s", NULL } },
+    { "app.about", { "<Control>a", NULL } },
+  };
 
   builder = gtk_builder_new ();
   gtk_builder_add_from_string (builder, ui_info, -1, NULL);
@@ -802,6 +806,9 @@ startup (GApplication *app)
 
   gtk_application_set_menubar (GTK_APPLICATION (app), menubar);
 
+  for (int i = 0; i < G_N_ELEMENTS (accels); i++)
+    gtk_application_set_accels_for_action (GTK_APPLICATION (app), accels[i].action_and_target, accels[i].accelerators);
+
   g_object_unref (builder);
 }